C++ can be used simply as 'a better C', but that is not its real advantage. C++ is an object-oriented programming language (OOPL). OOPLs appear to be the current 'top shelf' in the development of programming languages that can manage the complexity of large software systems. Some OOP hype: software engineering is 'failing' to provide the current users demands for large, complex software systems. But this 'failure' is actually due to SE's *successes*. In other words, structured programming was developed to allow software engineers to design/build HUGE software systems (that's a success). When users saw how successful these systems were, they said, 'More --- give me MOOORRRREEEE'. They wanted more power, more features, more flexibility. 100K line systems are almost commonplace nowadays, and they still want more. Structured programming techniques, some say, begin to break down around 100K lines (the complexity gives the design team too many headaches, and fixing one problem breaks 5 more, etc). So pragmatics demands a better paradigm than structured programming. Hence OO-design.